
package app;

/**
 * Klasa określająca przyciski do sterowania poruszającymi się obiektami.
 * @author morohusky
 */
public class Key {
    private final double PERCENTAGE_CALC = 1d / 100d;
    private double _power = 0;
    
    /**
     * Zwiększa moc przycisku
     */
    public void incPower() {
        _power++;
        if (_power > 100) {
            _power = 100;
        }
    }
    
    /**
     * Zmniejsza moc przycisku
     */
    public void decPower() {
        _power--;
        if (_power < 0d) {
            _power = 0d;
        }
    }
    
    /**
     * Zeruje moc przycisku
     */
    public void resetPower() {
        _power = 0d;
    }
    
    /**
     * Pobiera procentową ilość mocy przycisku
     * @return Procentowa ilość mocy
     */
    public double getPowerPercentage() {
        return _power * PERCENTAGE_CALC;
    }
    
    /**
     * Pobiera ilość mocy przycisku
     * @return Ilość mocy przycisku
     */
    public double getPower() {
        return _power;
    }
    
    /**
     * Ustawia ilość mocy przycisku (min - 0, max - 100)
     * @param value Ilość mocy przycisku
     */
    public void setPower(double value) {
        _power = value;
        if (_power > 100d) {
            _power = 100d;
        }
    }
    
    /**
     * Informuje, czy przycisk posiada moc
     * @return Informacja o posiadaniu mocy przycisku
     */
    public boolean havePower() {
        return _power > 0d;
    }
}
